<!--
@license
Copyright (C) 2017 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<link rel="import" href="../../../bower_components/polymer/polymer.html">

<link rel="import" href="../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.html">
<link rel="import" href="../../../behaviors/gr-path-list-behavior/gr-path-list-behavior.html">
<link rel="import" href="../../../bower_components/iron-input/iron-input.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../shared/gr-autocomplete/gr-autocomplete.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-dialog/gr-dialog.html">
<link rel="import" href="../../shared/gr-dropdown/gr-dropdown.html">
<link rel="import" href="../../shared/gr-overlay/gr-overlay.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../gr-edit-constants.html">

<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-edit-controls">
  <template>
    <style include="shared-styles">
      :host {
        align-items: center;
        display: flex;
        justify-content: flex-end;
      }
      .invisible {
        display: none;
      }
      gr-button {
        margin-left: 1em;
        text-decoration: none;
      }
      gr-dialog {
        width: 50em;
      }
      gr-dialog .main {
        width: 100%;
      }
      gr-autocomplete {
        --gr-autocomplete: {
          border: 1px solid var(--border-color);
          border-radius: 2px;
          font-size: var(--font-size-normal);
          height: 2em;
          padding: 0 .15em;
        }
      }
      input {
        border: 1px solid var(--border-color);
        border-radius: 2px;
        font-size: var(--font-size-normal);
        height: 2em;
        margin: .5em 0;
        padding: 0 .15em;
        width: 100%;
      }
      @media screen and (max-width: 50em) {
        gr-dialog {
          width: 100vw;
        }
      }
    </style>
    <template is="dom-repeat" items="[[_actions]]" as="action">
      <gr-button
          id$="[[action.id]]"
          class$="[[_computeIsInvisible(action.id, hiddenActions)]]"
          link
          on-tap="_handleTap">[[action.label]]</gr-button>
    </template>
    <gr-overlay id="overlay" with-backdrop>
      <gr-dialog
          id="openDialog"
          class="invisible dialog"
          disabled$="[[!_isValidPath(_path)]]"
          confirm-label="打开"
          confirm-on-enter
          on-confirm="_handleOpenConfirm"
          on-cancel="_handleDialogCancel">
        <div class="header" slot="header">
          打开或新建一个文件
        </div>
        <div class="main" slot="main">
          <gr-autocomplete
              placeholder="Enter an existing or new full file path."
              query="[[_query]]"
              text="{{_path}}"></gr-autocomplete>
        </div>
      </gr-dialog>
      <gr-dialog
          id="deleteDialog"
          class="invisible dialog"
          disabled$="[[!_isValidPath(_path)]]"
          confirm-label="删除"
          confirm-on-enter
          on-confirm="_handleDeleteConfirm"
          on-cancel="_handleDialogCancel">
        <div class="header" slot="header">从仓库中删除一个文件</div>
        <div class="main" slot="main">
          <gr-autocomplete
              placeholder="输入一个存在的文件的绝对路径"
              query="[[_query]]"
              text="{{_path}}"></gr-autocomplete>
        </div>
      </gr-dialog>
      <gr-dialog
          id="renameDialog"
          class="invisible dialog"
          disabled$="[[!_computeRenameDisabled(_path, _newPath)]]"
          confirm-label="重命名"
          confirm-on-enter
          on-confirm="_handleRenameConfirm"
          on-cancel="_handleDialogCancel">
        <div class="header" slot="header">从仓库中重命名一个文件</div>
        <div class="main" slot="main">
          <gr-autocomplete
              placeholder="输入一个存在的文件的绝对路径"
              query="[[_query]]"
              text="{{_path}}"></gr-autocomplete>
          <input
              class="newPathInput"
              is="iron-input"
              bind-value="{{_newPath}}"
              placeholder="输入新的路径"/>
        </div>
      </gr-dialog>
      <gr-dialog
          id="restoreDialog"
          class="invisible dialog"
          confirm-label="还原"
          confirm-on-enter
          on-confirm="_handleRestoreConfirm"
          on-cancel="_handleDialogCancel">
        <div class="header" slot="header">还原这个文件？</div>
        <div class="main" slot="main">
          <input
              is="iron-input"
              disabled
              bind-value="{{_path}}"/>
        </div>
      </gr-dialog>
    </gr-overlay>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-edit-controls.js"></script>
</dom-module>
